package com.cf.base.sp.engine.impl;

import com.cf.base.sp.engine.Encryption;

/**
 * 加密算法
 *
 * @author yangji
 */
public class DefaultEncryptionImpl implements Encryption {
    /**
     * 加密
     *
     * @param key   key
     * @param value value
     * @return 加密后数据
     */
    @Override
    public String encrypt(String key, String value) {
        return encodeBase64(value.getBytes());
    }

    /**
     * 解密
     *
     * @param key   key
     * @param value value
     * @return 解密后数据
     */
    @Override
    public String decrypt(String key, String value) {
        return new String(decodeBase64(value));
    }

    private String encodeBase64(byte[] bytes) {
        return Base64.encodeToString(bytes, Base64.DEFAULT);
    }

    private byte[] decodeBase64(String value) {
        return Base64.decode(value, Base64.DEFAULT);
    }
}
